Skip to main content

Activador Ejemplo 2: Proceso de encolado

El Robotics_Trigger_Advanced.project El proyecto de ejemplo descrito aquí se encuentra en el directorio de instalación de CODESYS bajo..\CODESYS SoftMotion\Examples.

Los activadores se pueden utilizar para realizar acciones en posiciones específicas de la ruta, como encender y apagar una boquilla de encolado.

Este ejemplo incluye los siguientes componentes:

  • La configuración de una previsión garantizada de la trayectoria por parte del fPlanningForecastDuration parámetro de la SMC_TuneCPKernel bloque de funciones

  • El comando de diferentes disparadores. Aquí, se utilizan los tres métodos disponibles para definir la posición de la ruta (ver SMC_TriggerPositionType).

  • El uso de disparadores con cambio de tiempo. La aplicación de ejemplo contiene el TriggerWithTimeShift bloque de función, que puede reaccionar al alcanzar la posición de la ruta con un desfase de tiempo (anterior y posterior).

Estos componentes se muestran en una aplicación de muestra para un proceso de encolado. Se ejecuta (con blending) el movimiento que se muestra en rojo en la siguiente imagen.

_sm_img_digital_switches_example.png

Los activadores se han definido en las posiciones marcadas en verde:

  • Posición 1: Encienda el dispositivo de encolado 0,05 s antes de llegar a la posición.

  • Posición 1: Encienda la lámpara UV cuando se alcance la posición.

  • Posición 2: llene el contenedor de suministro de pegamento cuando se alcance la posición.

  • Posición 3: Apague el dispositivo de encolado y deje de llenar el contenedor de suministro de pegamento 0,05 s antes de llegar a la posición.

  • Posición 3: Apague la lámpara UV 1,5 s después de llegar a la posición

Estructura de la aplicación

La aplicación consta de las siguientes partes.

  • GlueApplication: Este programa contiene la aplicación de muestra que muestra cómo usar los disparadores para un proceso de encolado.

  • Planning_PRG: En este programa se configura una previsión de la trayectoria.

  • TriggerWithTimeShift: Este bloque de funciones contiene la lógica para disparadores con un cambio de tiempo y se utiliza en el GlueApplication programa de muestra

  • Trace: La traza muestra la dinámica de los ejes y también las salidas de los GlueApplication programa que son conmutados por los activadores.

Configuración de un pronóstico

Si desea reaccionar antes de que se alcance un disparo, por ejemplo, 0,05 s antes, entonces el fPlanningForecastDuration parámetro del SMC_SMC_TuneCPKernel el bloque de funciones debe ajustarse al menos a 0,05 s. Debido a que el parámetro tiene un impacto directo en la latencia, su valor no debe ser mayor de lo necesario (consulte la documentación de fPlanificaciónPronósticoDuración). Tenga en cuenta que SMC_TuneCPKernel tiene que ser llamado en el SoftMotion tarea de planificación. Por este motivo, la configuración no se ejecuta en el programa principal. GlueApplication, pero en el Planning_PRG programa.

En esta aplicación de ejemplo, se requiere la evaluación del disparador como mínimo 0,05 s antes de que se alcance una posición. Por esta razón, el parámetrofPlanningForecastDuration=0.05 se establece en el Planning_PRG programa.

Bloque de funciones: TriggerWithTimeShift

El TriggerWithTimeShift El bloque de funciones proporciona una interfaz simplificada para usar disparadores. Además, se puede definir un cambio de tiempo para que el disparador pueda reaccionar antes de que se alcance una posición (valor positivo) así como después de que se alcance una posición (valor negativo). Dependiendo de la precisión de tiempo requerida en una aplicación, la reacción al alcanzar un disparador puede ser la siguiente:

  • Precisión de tiempo requerida >= ciclo de tarea de bus: En este caso, el TriggerWithTimeShift.TriggerReachedThisCycle Se puede utilizar la salida.

  • Precisión de tiempo requerida < ciclo de tarea de bus: en este caso, el tiempo restante exacto TriggerWithTimeShift.TriggerTime hasta que se alcance el gatillo se puede utilizar.

Internamente, TriggerWithTimeShift usa el SMC_GroupPrepareTrigger y SMC_GroupReadTrigger bloques de funciones

Disparadores de mando

En el GlueApplication programa, se comandan los movimientos y disparadores. El orden de llamada es particularmente importante para los disparadores porque los disparadores preparados usando SMC_GroupPrepareTrigger se asignan al siguiente movimiento comandado en el mismo ciclo. Por lo tanto, en cada aplicación debe prestar atención a lo siguiente:

  1. Los bloques de funciones para el comando de disparadores siempre se llaman antes que los bloques de funciones de movimiento.

  2. Los gatillos y el respectivo movimiento son comandados siempre en el mismo ciclo.

Los activadores utilizan todos los tipos de SMC_TriggerPositionType:

  • Los disparadores en la Posición 1 usan la definición de una distancia relativa (SMC_TriggerPositionType.MvtRelative) y como Posición 0.5. Debido a que el movimiento respectivo tiene una distancia de 10, los disparadores están ubicados en X=5.

  • El disparador en la Posición 2 usa la definición de una distancia en unidades de usuario u (SMC_TriggerPositionType.MvtDistance) y como Posición 5. Como resultado, el gatillo también se encuentra en X=5.

  • Los disparadores en la Posición 3 usan la intersección con un plano (SMC_TriggerPositionType.PlaneIntersection). El plano se ha definido de modo que los disparadores estén ubicados en X=5.

GlueApplication tiene el EnableGlue, EnableUVLamp, y RefillGlueStorage salidas. Estos se activan en los disparadores apropiados en GlueApplication.EvaluateTriggers(). El movimiento y el estado de estas salidas se pueden monitorear y evaluar en la traza.